import { reqGoodsList } from '../../../api/goods'
import licia from 'miniprogram-licia'
Page({
  data: {
    goodsList: [], // 商品列表数据
    total: 0, // 商品总条数
    isFinish: false, // 判断数据是否全部显示完毕
    isLoading: false, // 是否正在上拉加载数据(true:正在加载数据，再次上拉将不再发请求获取数据)
    // 请求参数
    requestData: {
      page: 1, // 页码
      limit: 10, // 条数
      category1Id: '', // 一级分类id
      category2Id: '' // 二级分类id
    }
  },
  // 无数据时点击查看其他商品按钮的回调
  gotoBack() {
    wx.navigateBack()
  },
  // 获取商品列表数据
  async getGoodsList() {
    // 将isLoading设置为true:正在上拉获取数据
    this.setData({
      // 响应式更改，也可使用非响应式更改 this.data.isLoading = true
      isLoading: true
    })
    // 开启加载
    wx.showLoading({
      title: '数据加载中...',
      mask: true
    })
    const result = await reqGoodsList(this.data.requestData)
    // 已经在响应拦截器中处理过code不等于200的情况
    // 存储返回的数据
    this.setData({
      goodsList: this.data.goodsList.concat(result.data.records),
      // goodsList: [...result.data.records, ...result.data.records],
      total: result.data.total
    })
    // 判断数据是否已经全部展示完毕
    const { goodsList, total } = this.data
    this.setData({
      isFinish: goodsList.length === total
    })
    // 关闭加载
    wx.hideLoading()
    // 上拉加载数据获取完毕将isLoading设置为false
    this.setData({
      isLoading: false
    })
  },
  // 监听页面上拉触底
  onReachBottom() {
    // 如果数据全部获取完毕或正在获取上拉加载的数据中则不再获取数据
    if (this.data.isFinish || this.data.isLoading) return
    // 若数据尚未获取完毕则继续上拉获取数据
    // 对页码加一
    const { page } = this.data.requestData
    this.setData({
      'requestData.page': page + 1
    })
    // 获取商品列表数据
    this.getGoodsList()
  },
  // 监听下拉刷新
  async onPullDownRefresh() {
    // 对数据进行重置并重新获取第一页的数据
    this.setData({
      goodsList: [],
      'requestData.page': 1
    })
    // 获取数据
    await this.getGoodsList()
    // 关闭Loading样式，避免其未自动关闭
    wx.stopPullDownRefresh()
  },
  onLoad(event) {
    // 获取其他页面传递的路径参数并存储
    // const { category1Id, category2Id } = event
    Object.assign(this.data.requestData, event)
    // 发请求获取商品列表数据
    this.getGoodsList()
  },
  // 监听转发
  onShareAppMessage() {
    return {
      title: '所有怦然心动，都是你',
      path: '/pages/index/index',
      imageUrl: '../../../../../assets/images/banner.jpg'
    }
  },
  // 分享到朋友圈
  onShareTimeline() {}
})
